package com.hurl.waguji.biz.download;

import com.hurl.waguji.base.dataprocess.ProcessResult;
import com.hurl.waguji.base.dataprocess.ProcessException;
import com.hurl.waguji.base.dataprocess.ProcessParams;
import com.hurl.waguji.base.dataprocess.ProcessParams.DateType;

/**
 * 下载服务类
 * @author hurl
 *
 */
public class DownloadService {
	/**
	 * 下载股票代码，包括更新股票名称，更新股票的首字母缩写，添加新上市的股票。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCjmxTencent() throws ProcessException{
		return DownloadIdentifier.MRHQ_CJMX_TENCENT.execute(ProcessParams.getDefault());
	}
	
	/**
	 * 下载股票代码，包括更新股票名称，更新股票的首字母缩写，添加新上市的股票。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCjmxFileTencent() throws ProcessException{
		return DownloadIdentifier.MRHQ_CJMX_FILE_TENCENT.execute(ProcessParams.getDefault());
	}
	
	/**
	 * 下载股票代码，包括更新股票名称，更新股票的首字母缩写，添加新上市的股票。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadStockCode() throws ProcessException{
		return DownloadIdentifier.STOCK_CODE_HEXUN.execute(ProcessParams.getDefault());
	}
	
	/**
	 * 从和讯网下载每个股票的当日行情，包括K线图上的相关数据，比如最高价，收盘价等。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadMrhqHexun() throws ProcessException{
		return DownloadIdentifier.MRHQ_HEXUN.execute(ProcessParams.getDefault());
	}

	/**
	 * 从和讯网下载每个股票的当日行情，包括K线图上的相关数据，比如最高价，收盘价等。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadMrhqSina() throws ProcessException{
		return DownloadIdentifier.MRHQ_SINA.execute(ProcessParams.getDefault());
	}

	/**
	 * 从和讯网下载没个股票当日收盘后的成交统计信息，比如成交金额，成交笔数，并按大单、小单、散单分类。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCjmxHexun() throws ProcessException{
		return DownloadIdentifier.MRHQ_CJMX_HEXUN.execute(ProcessParams.getDefault());
	}

	/**
	 * 从和讯网下载每个股票当日收盘后的成交统计信息：按价格统计。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCjmxFjmxHexun() throws ProcessException{
		return DownloadIdentifier.MRHQ_CJMX_FJMX_HEXUN.execute(ProcessParams.getDefault());
	}

	/**
	 * 从和讯网下载每个股票当日成交信息：每笔成交记录。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCjmxFbmxHexun() throws ProcessException{
		return DownloadIdentifier.MRHQ_CJMX_FBMX_HEXUN.execute(ProcessParams.getDefault());
	}

	/**
	 * 下载每个股票某个报告期的财务信息：财务比率。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCwCwblHexun() throws ProcessException{
		return DownloadIdentifier.CW_CWBL_HEXUN.execute(ProcessParams.getDefault().setDateType(DateType.END_OF_PREVIOUS_SEASON));
	}

	/**
	 * 下载每个股票某个报告期的利润表数据。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCwLrbHexun() throws ProcessException{
		return DownloadIdentifier.CW_LRB_HEXUN.execute(ProcessParams.getDefault().setDateType(DateType.END_OF_PREVIOUS_SEASON));
	}

	/**
	 * 下载每个股票某个报告期的资产负债表数据。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCwZcfzbHexun() throws ProcessException{
		return DownloadIdentifier.CW_ZCFZB_HEXUN.execute(ProcessParams.getDefault().setDateType(DateType.END_OF_PREVIOUS_SEASON));
	}

	/**
	 * 下载每个股票历次的分红情况。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadProfileFhHexun() throws ProcessException{
		return DownloadIdentifier.PROFILE_FH_HEXUN.execute(ProcessParams.getDefault());
	}

	/**
	 * 下载每个股票历次的配股情况。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadProfilePgHexun() throws ProcessException{
		return DownloadIdentifier.PROFILE_PG_HEXUN.execute(ProcessParams.getDefault());
	}

	/**
	 * 下载股票所属公司的基本资料。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadProfileGsgkThs() throws ProcessException{
		return DownloadIdentifier.PROFILE_GSGK_THS.execute(ProcessParams.getDefault());
	}
	
	/**
	 * 下载股票所属公司的高管资料。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadProfileGsggThs() throws ProcessException{
		return DownloadIdentifier.PROFILE_GSGG_THS.execute(ProcessParams.getDefault());
	}
	
	/**
	 * 下载股票所属公司的股东资料，包括十大股东和十大流通股东。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadProfileGdThs() throws ProcessException{
		return DownloadIdentifier.PROFILE_GD_THS.execute(ProcessParams.getDefault());
	}
	
	/**
	 * 下载股票所属公司的股东人数。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadProfileGdrsThs() throws ProcessException{
		return DownloadIdentifier.PROFILE_GDRS_THS.execute(ProcessParams.getDefault());
	}
	
	/**
	 * 下载股票所属公司历次财报期的股本机构，包括总股本、流通股本、受限股本等。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadProfileGbjgThs() throws ProcessException{
		return DownloadIdentifier.PROFILE_GBJG_THS.execute(ProcessParams.getDefault());
	}
	
	/**
	 * 下载股票所属公司股票的解禁时间表，包括解禁时间、解禁股数等。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadProfileJjsjbThs() throws ProcessException{
		return DownloadIdentifier.PROFILE_JJSJB_THS.execute(ProcessParams.getDefault());
	}

	/**
	 * 下载行业统计数据，包括盈利企业数、亏损企业数、持平企业数等。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadHytjThs() throws ProcessException{
		return DownloadIdentifier.HYTJ_THS.execute(ProcessParams.getDefault());
	}

	/**
	 * 下载股票所属公司历次财报期的利润表。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCwLrbThs() throws ProcessException{
		return DownloadIdentifier.CW_LRB_THS.execute(ProcessParams.getDefault());
	}

	/**
	 * 下载股票所属公司历次财报期的现金流表。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCwXjlbThs() throws ProcessException{
		return DownloadIdentifier.CW_XJLB_THS.execute(ProcessParams.getDefault());
	}

	/**
	 * 股票所属公司历次财报期的资产负债表。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCwZcfzbThs() throws ProcessException{
		return DownloadIdentifier.CW_ZCFZB_THS.execute(ProcessParams.getDefault());
	}

	/**
	 * 股票所属公司历次财报期的财务主要指标。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCwCwzbThs() throws ProcessException{
		return DownloadIdentifier.CW_CWZB_THS.execute(ProcessParams.getDefault());
	}

	/**
	 * 股票所属公司历次财报期的财务构成。
	 * @return
	 * @throws ProcessException
	 */
	public static ProcessResult downloadCwCwgcThs() throws ProcessException{
		return DownloadIdentifier.CW_CWGC_THS.execute(ProcessParams.getDefault());
	}
}
